﻿namespace PoolKit
{
    /// <summary>
    /// A strategy that does nothing to prepare resources for reuse.
    /// </summary>
    /// <typeparam name="TResource"></typeparam>
    public class ReusePreparationStrategyEmpty<TResource> : ReusePreparationStrategy<TResource>
    {
        public override ThreadingContract ThreadingContract
        {
            get { return ThreadingContract.Multithreaded; }
        }

        /// <summary>
        /// Prepares given resource for reuse - usually by wiping its state clean.
        /// </summary>
        /// <param name="resourceToBeReused">Resource to prepare for reuse</param>
        public override void PrepareForReuse(TResource resourceToBeReused)
        {
        }
    }
}